package ewu

import ewu._

/**
 * KRange = [from..to]
 * ist ein Intervall mit den Elementen vom Typ T von "from" bis "to"
 * mit "from" und "to" inklusive. Wenn "to" >= "from" ist, ist
 * KRange leer. Es ist moeglich zu pruefen ob ein Wert innerhalb der
 * KRange liegt. Weiter ist es moeglich die KRange in eine ScalaRange
 * (z.B. "for (i <- KRange.toScalaRange) {*}") zu konvertieren
 */

abstract class KRange[T](from: T, to: T) {
  def first: T = from

  def last: T = to

  def toScalaRange: Range

  def isEmpty: Boolean

  def isInRange(i: T): Boolean

  override def toString: String =
    "[" + from.toString + ".." + to.toString + "]"

}